function add(a,b) {
  return a+b;
}
console.log(add(12,22));

let add1 = add
console.log(add1(22,33));

//把没有名称的函数称为匿名函数
let add2 = function(a,b) {
  return a+b;
}
//箭头函数可以简化匿名函数的写法，都是创建了一个函数对象
let add3 = (a,b)=>{
  if(a>b) {
    return a+10;
  }
  return a+b;
}
//如果只有一行代码，箭头函数可以简化为如下写法
//箭头函数有一个非常重要的特性，就是函数中没有this指针
let add4 = (a,b)=>a+b

console.log(add4(22,33));

let user = {
  username:"老张",
  age:22,
  salary:[1000,2000,1500,4000],
  show:function() {
    console.log(this.username,this.age);
    // let that = this;
    this.salary.forEach((val,index)=>console.log(this.username,index,val));
    // this.salary.forEach(function(val,index){
    //   console.log(that.username,val,index);
    //   /**
    //    * undefined 1000 0
    //      undefined 2000 1 
    //      undefined 1500 2
    //      undefined 4000 3
    //    * 显示的结果，this.username是没有定义的
    //      原因是每一个function都是一个独立的对象，this其实指向的是function自己
    //      所以this没有指向user也就没有username属性，在早期需要定义一个新的变量来解决
    //      新的js版本中有了箭头函数，而箭头函数不是一个对象，也就没有this，此时可以用箭头函数来解决
    //    */
    // })
  }
}
user.show()